//package com.ruoyi.system.quartz;
//
//import cn.hutool.core.io.FileUtil;
//import cn.hutool.http.HttpRequest;
//import cn.hutool.http.HttpResponse;
//import cn.hutool.json.JSONObject;
//import cn.hutool.json.JSONUtil;
//import com.ruoyi.common.config.RuoYiConfig;
//import com.ruoyi.system.domain.HUAWEI.WcxzRequestDTO;
//import com.ruoyi.system.domain.HUAWEI.XzdbRequestDTO;
//import com.ruoyi.system.domain.HUAWEI.XzdbResponseDTO;
//import org.springframework.stereotype.Component;
//
//import java.io.File;
//import java.util.Date;
//import java.util.List;
//
///**
// * @description: 华为GDP定时任务
// * @author: zhengxiong.jiang
// * @createDate: 2024-12-13
// * @version: 1.0
// */
//@Component("GDPTask")
//public class GdpQuartz {
//
//    public static final String XHWID = "APP_Z01YQJ_CQLDgdp";
//    public static final String XHWAPPKEY = "ZgpDwj2Lb9CtmCIYdW5xwQ==";
//
//    //获取下载代办
//    public static final String API_XZDB = "https://apigw-01.huawei.com/api/services/process/task/getMyTaskBySupplier";
//    //下载文件
//    public static final String API_XZWJ = "https://apigw-01.huawei.com/api/dlservice/downloadFile";
//    //对比文件
//    public static final String API_DBWJ = "https://apigw-01.huawei.com/api/dlservice/downloadFileWithSha256";
//    //完成下载
//    public static final String API_WCXZ = "https://apigw-01.huawei.com/api/services/process/task/supplierSubmitTask";
//
//
//    /**
//     * GDP执行入口
//     */
//    public void execute() {
//
//        XzdbResponseDTO myTaskBySupplier = this.getMyTaskBySupplier();
//
//        //获取成功则进行下一步下载文件
//        if("success".equals(myTaskBySupplier.getCode())){
//
//            List<XzdbResponseDTO.Data.Result> results = myTaskBySupplier.getData().getResults();
//            results.stream().forEach(i->{
//               this.downloadFile(i.getWorkitemID());
//            });
//
//
//        }
//
//
//    }
//
//    //获取下载代办
//    public XzdbResponseDTO getMyTaskBySupplier(){
//
//        XzdbRequestDTO dto = new XzdbRequestDTO("ALL","Z01YQJ",String.valueOf(new Date().getTime()),
//                "重庆蓝黛变速器有限公司","1","100");
//
//        String body = HttpRequest.post(API_XZDB)
//                .header("X-HW-ID", XHWID)
//                .header("X-HW-APPKEY", XHWAPPKEY)
//                .header("Content-Type", "application/json")
//                .body(JSONUtil.toJsonStr(dto))
//                .execute().body();
//        // 使用 Hutool 解析 JSON
//        XzdbResponseDTO xzdbResponseDTO = JSONUtil.toBean(body, XzdbResponseDTO.class);
//
//        return xzdbResponseDTO;
//    }
//
//
//    //下载文件
//    public void downloadFile(String workitemID){
//        String csStr = "?businessType=ALL&supplier=Z01YQJ&workitemId="+workitemID+"&requestId="+String.valueOf(new Date().getTime())+"&clientId=重庆蓝黛变速器有限公司";
//        HttpRequest request = HttpRequest.get(API_XZWJ+csStr)
//                .header("X-HW-ID", XHWID)
//                .header("X-HW-APPKEY", XHWAPPKEY)
//                .timeout(10000);//设置超时时间
//
//        // 发起 HTTP 请求并获取响应
//        HttpResponse response = request.execute();
//        // 检查响应状态码，确认请求成功
//        if (response.getStatus() == 200) {
//            // 获取文件名（可以从 URL 中提取或从响应头中获取）
//            String contentDisposition = response.header("Content-Disposition");
//            String fileName = "downloaded_file"; // 默认文件名
//
//            if (contentDisposition != null && contentDisposition.contains("filename=")) {
//                // 解析文件名
//                fileName = contentDisposition.split("filename=")[1].replace("\"", "");
//            }
//
//            // 获取文件数据
//            byte[] fileBytes = response.bodyBytes();
//
//            // 保存到指定目录（例如：/downloads/目录）
//            File outputFile = new File(RuoYiConfig.getProfile()+"/" + fileName);
//
//            // 确保目标文件夹存在
//            FileUtil.mkdir(outputFile.getParentFile());
//
//            try {
//                // 将字节数组写入文件
//                FileUtil.writeBytes(fileBytes, outputFile);
//                System.out.println("文件已成功下载并保存为: " + outputFile.getAbsolutePath());
//            } catch (Exception e) {
//                //异常日志记录
////                e.printStackTrace();
//                System.out.println("文件存储失败: " + e.getMessage());
//            }
//        } else {
//            System.out.println("请求失败，状态码: " + response.getStatus());
//            //请求失败日志记录
//
//        }
//
//    }
//
//    //比对文件
//    public void contrastFile(String workitemID){
//        String csStr = "?businessType=ALL&supplier=Z01YQJ&workitemId="+workitemID+"&requestId="+String.valueOf(new Date().getTime())+"&clientId=重庆蓝黛变速器有限公司";
//        HttpRequest request = HttpRequest.get(API_DBWJ+csStr)
//                .header("X-HW-ID", XHWID)
//                .header("X-HW-APPKEY", XHWAPPKEY)
//                .timeout(10000);//设置超时时间
//        // 发起 HTTP 请求并获取响应
//        HttpResponse response = request.execute();
//        // 检查响应状态码，确认请求成功
//        if (response.getStatus() == 200) {
//            String body = response.body();
//            JSONObject jsonObject = JSONUtil.parseObj(body);
//            // 提取数据
//            String code = jsonObject.getStr("code");
//            Object data = jsonObject.get("data");  // Hutool 的 get 方法会返回 null 如果字段不存在
//            String message = jsonObject.getStr("message");
//
//        } else {
//            System.out.println("请求失败，状态码: " + response.getStatus());
//            //请求失败日志记录
//
//        }
//    }
//
//    //完成下载任务
//    public void complete(String workitemID){
//        WcxzRequestDTO dto = new WcxzRequestDTO("Download",workitemID,
//                "Z01YQJ","已下载",String.valueOf(new Date().getTime()),"重庆蓝黛变速器有限公司");
//
//        String body = HttpRequest.post(API_WCXZ)
//                .header("X-HW-ID", XHWID)
//                .header("X-HW-APPKEY", XHWAPPKEY)
//                .header("Content-Type", "application/json")
//                .body(JSONUtil.toJsonStr(dto))
//                .execute().body();
//        // 使用 Hutool 解析 JSON
//        JSONObject jsonObject = JSONUtil.parseObj(body);
//        // 提取数据
//        String code = jsonObject.getStr("code");
//        Object data = jsonObject.get("data");  // Hutool 的 get 方法会返回 null 如果字段不存在
//        String message = jsonObject.getStr("message");
//    }
//
//}
